package com.atbeijing.gmall.realtime.utils;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * 获取Jedis工具类
 */
public class RedisUtil {

    private static JedisPool jedisPool;

    public static void init() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //最大可用连
        jedisPoolConfig.setMaxTotal(100);
        //连接耗尽是否等待
        jedisPoolConfig.setBlockWhenExhausted(true);
        //获取池中连接等待时间
        jedisPoolConfig.setMaxWaitMillis(2000);
        //最大闲置连接数
        jedisPoolConfig.setMaxIdle(5);
        //最小闲置连接数
        jedisPoolConfig.setMinIdle(5);
        //取连接的时候进行一下测试 ping pong
        jedisPoolConfig.setTestOnBorrow(true);
        //连接redis服务的过期时间20000ms
        jedisPool = new JedisPool(jedisPoolConfig,"hadoop202",6379,20000);
        System.out.println("----初始化redis连接池---");
    }

    /**
     * 从jedisPool中获取redis连接
     * @return Jedis
     */
    public static Jedis getJedis(){
        if(jedisPool == null){
            init();
        }
        return  jedisPool.getResource();
    }

    public static void main(String[] args) {
//        Jedis jedis = getJedis();
//        String msg = jedis.ping();
//        System.out.println(msg);
    }
}
